package com.xebest.web.form;

import com.xebest.web.form.base.BaseForm;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.util.List;


/**
 * 供货商form
 *
 * @author 李书峰
 */

public class XeVenPurchSupInfoForm extends BaseForm {

    private static final long serialVersionUID = -5908043248234421570L;

    /**
     * 供货商编码
     */
    private String supplierCode;

    /**
     * 供货商编码查询
     */
    private String supplierCodeSearch;

    /**
     * 商户code
     */
    private String userCode;

    /**
     * 运营平台商户code
     */
    private String shopCode;

    /**
     * 供货商名称
     */
    @NotNull(message = "供货商名称不能为空")
    @NotEmpty(message = "供货商名称不能为空")
    @Length(min = 1, max = 50, message = "供货商名称长度不能大于50个字符")
    private String supplierName;

    /**
     * 供货商类型（1:厂家 2:贸易商 3:一批 4:二批 5:其他）
     */
    @NotNull(message = "供货商类型不能为空")
    private Integer supplierType;

    /**
     * 预更新供货商状态（1:待提交 2:审核中 3:正常 4:冻结）
     */
    @NotNull(message = "预更新供货商状态不能为空")
    private Integer supplierStatus;

    /**
     * 预更新审核状态（1:待提交 2:待商品部审核 3商品部驳回: 4:待财务部审核 5:财务部驳回 6:已审核待签订）
     */
    @NotNull(message = "预更新审核状态不能为空")
    private Integer checkStatus;
    /**
     * 当前供货商预更新状态（1:待提交 2:审核中 3:正常 4:冻结）
     */
    private Integer supplierStatusPre;

    /**
     * 当前审核状态（1:待提交 2:待商品部审核 3商品部驳回: 4:待财务部审核 5:财务部驳回 6:已审核待签订）
     */
    private Integer checkStatusPre;

    /**
     * 账期
     */
    private Integer paymentDays;

    /**
     * 结算周期 1:T+1，2:T+2......n:T+n
     */
    @NotNull(message = "结算周期不能为空")
    private Integer settlementCycle;

    /**
     * 结算方式（1：账期结算，2：预付款，3：现结）
     */
    @NotNull(message = "结算方式不能为空")
    private Integer settlementWay;

    /**
     * 结算周期时间单位 1,天 2,周 3,月
     */
    @NotNull(message = "结算周期时间单位不能为空")
    private Integer settlementTimeUnit;

    /**
     * 支付方式（1:网银 2:转账支票 3:电汇 4:支付宝 5:其他）
     */
    private Integer payType;

    /**
     * 发票类型（1:无发票2:普通发票3:增值税发票）
     */
    private Integer invoiceType;

    /**
     * 发票费率
     */
    private Integer invoiceRate;

    /**
     * 是否成为商户(1:是2:否)
     */
    private Integer becomeVendor;

    /**
     * 审核人
     */
    private String auditor;

    /**
     * 采购驳回原因
     */
    private String purchRejectReason;

    /**
     * 财务驳回原因
     */
    private String financeRejectReason;

    /**
     * 是否删除 1未删除 2已删除
     */
    private Integer delFlag;


    /**
     * 修改人
     */
    private String modifyUser;

    /**
     * 修改人
     */
    private String createUser;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 搜索组合字段
     */
    private String searchText;

    /**
     * 联系人列表
     */
    @NotNull(message = "联系人列表不能为空")
    private List<XeVenPurchSupLinkmanForm> linkmanList;

    /**
     * 合同列表
     */
    private List<XeVenPurchSupContractForm> contractList;

    /**
     * 合同文件列表
     */
    private List<String> fileList;

    /**
     * 合同
     */
    private XeVenPurchSupContractForm contractForm;

    /**
     * 开户行
     */
    private XeVenPurchSupBankForm bank;

    /**
     * 资质列表
     */
    @NotNull(message = "资质列表不能为空")
    private List<XeVenPurchSupAptitudeForm> aptitudeList;

    /**
     * 供货商列表
     */
    private List<XeVenPurchSupInfoForm> supInfoList;

    /**
     * 是否是审核列表页：1，是；2，不是
     */
    private Integer isCheckList;

    /**
     * 文本搜索类型（1,供货商编码;2,供货商名称;）
     */
    private Integer searchType;

    /**
     * 是否更新资质（1,更新；2,不）
     */
    private Integer updateAptitude;

    /**
     * 供货商分类(1:个人,2:企业)
     */
    @NotNull(message = "供货商分类不能为空")
    private Integer supplierClassify;

    public String getSupplierCode() {
        return supplierCode;
    }

    public void setSupplierCode(String supplierCode) {
        this.supplierCode = supplierCode;
    }

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public Integer getSupplierType() {
        return supplierType;
    }

    public void setSupplierType(Integer supplierType) {
        this.supplierType = supplierType;
    }

    public Integer getSupplierStatus() {
        return supplierStatus;
    }

    public void setSupplierStatus(Integer supplierStatus) {
        this.supplierStatus = supplierStatus;
    }

    public Integer getCheckStatus() {
        return checkStatus;
    }

    public void setCheckStatus(Integer checkStatus) {
        this.checkStatus = checkStatus;
    }

    public Integer getPaymentDays() {
        return paymentDays;
    }

    public void setPaymentDays(Integer paymentDays) {
        this.paymentDays = paymentDays;
    }

    public Integer getSettlementCycle() {
        return settlementCycle;
    }

    public void setSettlementCycle(Integer settlementCycle) {
        this.settlementCycle = settlementCycle;
    }

    public Integer getSettlementWay() {
        return settlementWay;
    }

    public void setSettlementWay(Integer settlementWay) {
        this.settlementWay = settlementWay;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public Integer getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(Integer invoiceType) {
        this.invoiceType = invoiceType;
    }

    public Integer getInvoiceRate() {
        return invoiceRate;
    }

    public void setInvoiceRate(Integer invoiceRate) {
        this.invoiceRate = invoiceRate;
    }

    public Integer getBecomeVendor() {
        return becomeVendor;
    }

    public void setBecomeVendor(Integer becomeVendor) {
        this.becomeVendor = becomeVendor;
    }

    public String getAuditor() {
        return auditor;
    }

    public void setAuditor(String auditor) {
        this.auditor = auditor;
    }

    public String getPurchRejectReason() {
        return purchRejectReason;
    }

    public void setPurchRejectReason(String purchRejectReason) {
        this.purchRejectReason = purchRejectReason;
    }

    public String getFinanceRejectReason() {
        return financeRejectReason;
    }

    public void setFinanceRejectReason(String financeRejectReason) {
        this.financeRejectReason = financeRejectReason;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public String getModifyUser() {
        return modifyUser;
    }

    public void setModifyUser(String modifyUser) {
        this.modifyUser = modifyUser;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public String getSearchText() {

        return searchText;
    }

    public void setSearchText(String searchText) {

        this.searchText = searchText;
    }

    public List<XeVenPurchSupLinkmanForm> getLinkmanList() {

        return linkmanList;
    }

    public void setLinkmanList(List<XeVenPurchSupLinkmanForm> linkmanList) {

        this.linkmanList = linkmanList;
    }

    public List<XeVenPurchSupContractForm> getContractList() {

        return contractList;
    }

    public void setContractList(List<XeVenPurchSupContractForm> contractList) {

        this.contractList = contractList;
    }

    public XeVenPurchSupBankForm getBank() {

        return bank;
    }

    public void setBank(XeVenPurchSupBankForm bank) {

        this.bank = bank;
    }

    public List<XeVenPurchSupAptitudeForm> getAptitudeList() {

        return aptitudeList;
    }

    public void setAptitudeList(List<XeVenPurchSupAptitudeForm> aptitudeList) {

        this.aptitudeList = aptitudeList;
    }

    public String getCreateUser() {

        return createUser;
    }

    public void setCreateUser(String createUser) {

        this.createUser = createUser;
    }

    public Integer getSupplierStatusPre() {

        return supplierStatusPre;
    }

    public void setSupplierStatusPre(Integer supplierStatusPre) {

        this.supplierStatusPre = supplierStatusPre;
    }

    public Integer getCheckStatusPre() {

        return checkStatusPre;
    }

    public void setCheckStatusPre(Integer checkStatusPre) {

        this.checkStatusPre = checkStatusPre;
    }

    public List<XeVenPurchSupInfoForm> getSupInfoList() {

        return supInfoList;
    }

    public void setSupInfoList(List<XeVenPurchSupInfoForm> supInfoList) {

        this.supInfoList = supInfoList;
    }

    public Integer getSettlementTimeUnit() {

        return settlementTimeUnit;
    }

    public void setSettlementTimeUnit(Integer settlementTimeUnit) {

        this.settlementTimeUnit = settlementTimeUnit;
    }

    public Integer getIsCheckList() {

        return isCheckList;
    }

    public void setIsCheckList(Integer isCheckList) {

        this.isCheckList = isCheckList;
    }

    public String getShopCode() {

        return shopCode;
    }

    public void setShopCode(String shopCode) {

        this.shopCode = shopCode;
    }

    public Integer getSearchType() {

        return searchType;
    }

    public void setSearchType(Integer searchType) {

        this.searchType = searchType;
    }

    public XeVenPurchSupContractForm getContractForm() {

        return contractForm;
    }

    public void setContractForm(XeVenPurchSupContractForm contractForm) {

        this.contractForm = contractForm;
    }

    public List<String> getFileList() {

        return fileList;
    }

    public void setFileList(List<String> fileList) {

        this.fileList = fileList;
    }

    public String getSupplierCodeSearch() {

        return supplierCodeSearch;
    }

    public void setSupplierCodeSearch(String supplierCodeSearch) {

        this.supplierCodeSearch = supplierCodeSearch;
    }

    public Integer getUpdateAptitude() {

        return updateAptitude;
    }

    public void setUpdateAptitude(Integer updateAptitude) {

        this.updateAptitude = updateAptitude;
    }

    public Integer getSupplierClassify() {

        return supplierClassify;
    }

    public void setSupplierClassify(Integer supplierClassify) {

        this.supplierClassify = supplierClassify;
    }


}
  
